﻿﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using Odense_Kommune.Controller;
using Odense_Kommune.Interfaces;

namespace Odense_Kommune
{
    /// <summary>
    /// Interaction logic for SpørgeskemaOpret.xaml
    /// </summary>
    public partial class SpørgeskemaOpret : Window
    {
        Systemcontroller controller;
        Socialcentret sc;
        IVirkninger _lang, _mellem, _kort;

        public SpørgeskemaOpret(Systemcontroller sysc, Socialcentret sc)
        {
            InitializeComponent();
            controller = sysc;
            this.sc = sc;
            UpdateGUILeverandører();
            UpdateGUImålgrupper();
            UpdateGUICBVirkninger();
        }

        private void cbVirkning_DropDownClosed(object sender, EventArgs e) { UpdateGUIVirkninger(); }

        #region Button Metoder
        private void btnTilføjVirkning_Click(object sender, RoutedEventArgs e)
        {
            if (cbVirkning.SelectedValue.ToString() == "Forventede langsigtede virkninger")
            {
                _lang = (IVirkninger)dgVirkninger.SelectedItem;
                MessageBox.Show("Langsigtede Virkning - " + _lang.Beskrivelse + " - er tilføjet");
            }
            else if (cbVirkning.SelectedValue.ToString() == "Forventede mellemlange virkninger")
            {
                _mellem = (IVirkninger)dgVirkninger.SelectedItem;
                MessageBox.Show("Mellemlang Virkning - " + _mellem.Beskrivelse + " - er tilføjet");
            }
            else if (cbVirkning.SelectedItem.ToString() == "Forventede kortsigtede virkninger")
            {
                _kort = (IVirkninger)dgVirkninger.SelectedItem;
                MessageBox.Show("Kortsigtet Virkning - " + _kort.Beskrivelse + " - er tilføjet");
            }
        }

        private void btnSpørgeskemaTilføjLeverandør_Click(object sender, RoutedEventArgs e)
        {
            LeverandørTilføj vindue = new LeverandørTilføj();
            vindue.ShowDialog();
        }

        private void btnSpørgeskemaTilføjMålgruppe_Click(object sender, RoutedEventArgs e)
        {
            MålgruppeTilføj vindue = new MålgruppeTilføj();
            vindue.ShowDialog();
        }

        private void btnSpørgeskemaOpret_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (txtNavn.Text.Length == 0)
                {
                    MessageBox.Show("Du skal vælge et navn");
                    txtNavn.Focus();
                }
                else
                {
                    ILeverandør tempLev = (ILeverandør)cbLeverandør.SelectedItem;
                    IMålgruppe tempMål = (IMålgruppe)cbMålgruppe.SelectedItem;
                    controller.OpretSpørgeskema(txtNavn.Text, txtKommentar.Text, tempLev.Navn, 0, tempMål.Beskrivelse, _lang.Beskrivelse, _kort.Beskrivelse, _mellem.Beskrivelse, true, DateTime.MinValue);
                    this.Close();
                }
            }
            catch { }
        }
        #endregion

        #region GUI metoder

        public void UpdateGUILeverandører()
        {
            cbLeverandør.ItemsSource = null;
            cbLeverandør.ItemsSource = controller.LeverandørCol.ListeafLeverandør;
            cbLeverandør.DisplayMemberPath = "Navn";
        }

        public void UpdateGUICBVirkninger()
        {
            cbVirkning.ItemsSource = null;
            cbVirkning.ItemsSource = controller.VirkningerCol.ListeafVirkninger;
        }

        public void UpdateGUIVirkninger()
        {
            if (cbVirkning.SelectedValue.ToString() == "Forventede langsigtede virkninger")
            {
                dgVirkninger.ItemsSource = null;
                dgVirkninger.ItemsSource = controller.VirkningerCol.ListeafLangVirkninger;
                dgVirkninger.Columns[0].Visibility = System.Windows.Visibility.Hidden;
                dgVirkninger.Columns[2].Visibility = System.Windows.Visibility.Hidden;
            }

            else if (cbVirkning.SelectedItem.ToString() == "Forventede mellemlange virkninger")
            {
                dgVirkninger.ItemsSource = null;
                dgVirkninger.ItemsSource = controller.VirkningerCol.ListeafMellemVirkninger;
                dgVirkninger.Columns[0].Visibility = System.Windows.Visibility.Hidden;
                dgVirkninger.Columns[2].Visibility = System.Windows.Visibility.Hidden;
            }

            else if (cbVirkning.SelectedItem.ToString() == "Forventede kortsigtede virkninger")
            {
                dgVirkninger.ItemsSource = null;
                dgVirkninger.ItemsSource = controller.VirkningerCol.ListeafKortVirkninger;
                dgVirkninger.Columns[0].Visibility = System.Windows.Visibility.Hidden;
                dgVirkninger.Columns[2].Visibility = System.Windows.Visibility.Hidden;
            }
        }

        public void UpdateGUImålgrupper()
        {
            cbMålgruppe.ItemsSource = null;
            cbMålgruppe.ItemsSource = controller.MålgruppeCol.ListeafMålgrupper;
            cbMålgruppe.DisplayMemberPath = "Beskrivelse";
        }

        #endregion
    }
}